package com.ruoyi.asms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.asms.domain.AsmsFaultAsset;
import com.ruoyi.asms.domain.vo.*;

import java.util.List;

/**
 * 故障资产设备信息Service接口
 * 
 * @author yfkj
 * @date 2021-11-01
 */

public interface IAsmsFaultAssetService  extends IService<AsmsFaultAsset>
{
    /**
     * 查询故障资产设备信息
     * 
     * @param faultAssetId 故障资产设备信息主键
     * @return 故障资产设备信息
     */
    public AsmsFaultAsset selectAsmsFaultAssetByFaultAssetId(Long faultAssetId);

    /**
     * 查询故障资产设备信息列表
     * 
     * @param asmsFaultAsset 故障资产设备信息
     * @return 故障资产设备信息集合
     */
    public List<AsmsFaultAsset> selectAsmsFaultAssetList(AsmsFaultAsset asmsFaultAsset);

    /**
     * 新增故障资产设备信息
     * 
     * @param asmsFaultAsset 故障资产设备信息
     * @return 结果
     */
    public int insertAsmsFaultAsset(AsmsFaultAsset asmsFaultAsset);

    /**
     * 修改故障资产设备信息
     * 
     * @param asmsFaultAsset 故障资产设备信息
     * @return 结果
     */
    public int updateAsmsFaultAsset(AsmsFaultAsset asmsFaultAsset);

    /**
     * 批量删除故障资产设备信息
     * 
     * @param faultAssetIds 需要删除的故障资产设备信息主键集合
     * @return 结果
     */
    public int deleteAsmsFaultAssetByFaultAssetIds(Long[] faultAssetIds);

    /**
     * 删除故障资产设备信息信息
     * 
     * @param faultAssetId 故障资产设备信息主键
     * @return 结果
     */
    public int deleteAsmsFaultAssetByFaultAssetId(Long faultAssetId);

    public AssetTypeFaultNumberVo getFaultNumberByAssetType(Long assetTypeId);

    public List<FaultChartVo>  getFaultNumber(Long maintenance_dept_id, Long useDeptId, Long assetTypeId);

    public AssetRepairNumberVo getRepairResultByDept(TreeSelect tree);

    /**
     * 获取某个维护公司一周的故障处理数量
     * @param startTime 某一周开始时间
     * @param endTime 某一周结束时间
     */
    List<ThisWeekFaultSQLVo> getOneWeekFaultNum(Long startTime, Long endTime, Long mDeptId);
}
